package com.chenghao.jsandandroid;

import android.app.Activity;
import android.os.Bundle;
import android.view.View;
import android.webkit.JavascriptInterface;
import android.webkit.WebChromeClient;
import android.webkit.WebSettings;
import android.webkit.WebView;
import android.webkit.WebViewClient;
import android.widget.TextView;
import android.widget.Toast;

public class MainActivity extends Activity{

    private WebView mywebview;
    /**
     * 点击调用html无参数
     */
    private TextView mytext;
    /**
     * 点击html调用有参数的js
     */
    private TextView gethtmljs;



    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        mywebview= (WebView) findViewById(R.id.mywebview);
        mytext= (TextView) findViewById(R.id.mytext);
        gethtmljs= (TextView) findViewById(R.id.gethtmljs);


        mywebview.loadUrl("file:///android_asset/Mydemo.html");

        //设置js
        WebSettings setting = mywebview.getSettings();
        setting.setJavaScriptEnabled(true);//支持js
        setting.setDomStorageEnabled(true);
        setting.setDefaultTextEncodingName("UTF-8");//设置字符编码
        //加这句话，否则js不起作用，说是要一个承载体
        mywebview.setWebChromeClient(new WebChromeClient());

        // 添加一个对象, 让JS可以访问该对象的方法, 该对象中可以调用JS中的方法
        mywebview.addJavascriptInterface(MainActivity.this,"haha"); //找到Html文件，也可以用网络上的文件


        mywebview.setWebViewClient(new WebViewClient(){
            @Override
            public boolean shouldOverrideUrlLoading(WebView view, String url) {
                view.loadUrl(url);
                return true;
            }
        });

        mytext.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                mywebview.loadUrl("javascript:getjs()");
                Toast.makeText(MainActivity.this,"android调用js方法无参数",Toast.LENGTH_SHORT).show();
            }
        });

        gethtmljs.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                mywebview.loadUrl("javascript:getshowtextjs('这个是有参数的html')");
                Toast.makeText(MainActivity.this,"android调用js方法有参数",Toast.LENGTH_SHORT).show();

            }
        });
    }

    @JavascriptInterface
    public void start(String str){
        Toast.makeText(MainActivity.this,"android调用js方法,message="+str,Toast.LENGTH_SHORT).show();
    };
}
